import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

Vue.use(Vuex)

// store是唯一的一个数据仓库(管家)
// 复习知识点：store里包含5大核心配置(概念)
// state -> 定义变量
// mutations -> 定义方法(形参1是state，唯一可以修改state值的地方) -> devTool工具检查
// actions -> 定义方法(形参1是store，异步操作来修改state，但是也要提交到mutations)
// getters -> vuex里计算属性 -> 计算返回值
// modules -> 集中式管理太多，可以分散到多个模块分别管理(但是最后都要挂载到根store上)
const store = new Vuex.Store({
  modules: { // vuex分模块：key模块名，value模块配置对象
    app,
    settings,
    user
  },
  getters
})

export default store
